package com.cbd.mapper;

import org.apache.ibatis.annotations.*;

import java.util.List;

/**
 * @Author: xue
 * @Date: 2024/11/25 15:18
 * @Description:超级管理员Mapper映射接口
 */
@Mapper
public interface SuperAdminMapper {
    /**
     * 添加用户为普通管理员
     * @param username 用户名
     * @param roleName 角色名
     */
    @Insert("insert into t_user_role (user_id, role_id)\n"
            + "select u.user_id, r.role_id\n"
            + "from t_user u\n"
            + "inner join t_role r on u.username = #{username} \n"
            + "and r.role_name = #{roleName};")
    String addAdmin(@Param("username") String username, @Param("roleName") String roleName);

    /**
     * 查询所有管理员信息
     * @return 管理员信息
     */
    @Select("select u.*, r.role_name\n" +
            "from t_user u\n" +
            "join t_user_role ur on u.user_id = ur.user_id\n" +
            "join t_role r on ur.role_id = r.role_id;")
    List queryAdmin();

    /**
     * 删除用户的管理员权限
     * @param username 用户名
     * @param roleName 角色名
     */
    @Delete("delete from t_user_role\n"
            + "where user_id in (\n"
            + "    select user_id from t_user where username = #{username}\n"
            + ") and role_id in (\n"
            + "    select role_id from t_role where role_name = #{roleName}\n"
            + ");")
    String deleteAdmin(@Param("username") String username, @Param("roleName") String roleName);

}
